home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / Four_Array2096921102008.psc / Array Sorting Functions / modShakerSort.bas < prev    next >
BASIC Source File  |  2008-01-10  |  1KB  |  40 lines

  1. Attribute VB_Name = "modShakerSort"
  2. Option Explicit
  3.  
  4. Public Sub ShakerSort(ByRef strArray() As String, ByVal lngUpperBound As Long)
  5.     Dim i As Long, lngBegin As Long, lngEnd As Long
  6.     Dim strTempString As String
  7.     Dim blmItemSwapped As Boolean
  8.     
  9.     lngBegin = -1
  10.     lngEnd = lngUpperBound - 1
  11.     
  12.     Do
  13.         blmItemSwapped = False
  14.         lngBegin = lngBegin + 1
  15.         For i = lngBegin To lngEnd
  16.             If strArray(i) > strArray(i + 1) Then
  17.                 strTempString = strArray(i)
  18.                 strArray(i) = strArray(i + 1)
  19.                 strArray(i + 1) = strTempString
  20.                 blmItemSwapped = True
  21.             End If
  22.         Next i
  23.         
  24.         If blmItemSwapped = False Then _
  25.         Exit Do
  26.         
  27.         blmItemSwapped = False
  28.         lngEnd = lngEnd - 1
  29.         For i = lngEnd To lngBegin Step -1
  30.             If strArray(i) > strArray(i + 1) Then
  31.                 strTempString = strArray(i)
  32.                 strArray(i) = strArray(i + 1)
  33.                 strArray(i + 1) = strTempString
  34.                 blmItemSwapped = True
  35.             End If
  36.         Next i
  37.     Loop Until blmItemSwapped = False
  38.     
  39. End Sub
  40.